package cn.tedu.medicalappointmentsystemk.service;

import cn.tedu.medicalappointmentsystemk.consts.data.AccountConsts;
import cn.tedu.medicalappointmentsystemk.pojo.bo.DoctorSelectBO;
import cn.tedu.medicalappointmentsystemk.pojo.bo.DoctorSelectByDoctorIdBO;
import cn.tedu.medicalappointmentsystemk.pojo.bo.DoctorSelectByIdBO;
import cn.tedu.medicalappointmentsystemk.pojo.bo.DoctorSelectTypeBO;
import cn.tedu.medicalappointmentsystemk.pojo.param.DoctorAddParam;
import cn.tedu.medicalappointmentsystemk.pojo.param.DoctorUpdateParam;
import cn.tedu.medicalappointmentsystemk.pojo.po.PageData;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;


public interface DoctorService extends AccountConsts{
    @Transactional
    void addDoctor(DoctorAddParam doctorAddParam);

    PageData<DoctorSelectBO> selectDoctor(Integer pageNum);

    @Transactional
    void deleteDoctor(Long id);

    DoctorSelectByIdBO selectDoctorById(Long id);

    List<DoctorSelectTypeBO> selectDoctorType();

    void changeDoctor(DoctorUpdateParam param);

    DoctorSelectByDoctorIdBO selectDoctorByDoctorId(Long id);

    List<DoctorSelectBO> selectByNickname(String nickname);

    Integer selectTotal();

    PageData<DoctorSelectBO> searchLastMonth(Integer pageNum);

    PageData<DoctorSelectBO> searchLastWeek(Integer pageNum);

    PageData<DoctorSelectBO> searchToday(Integer pageNum);
}
